package com.dsg.service.account;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsg.entity.account.DsgAccountTrade;
import com.dsg.entity.bank.DsgBankDetail;
import com.dsg.service.apply.IDsglService;

import java.util.List;

/**
 * <p>
 * 交易帳目 服务类
 * </p>
 *
 * @author system
 * @since 2020-07-12
 */
public interface IDsgAccountTradeService extends IService<DsgAccountTrade>, IDsglService<DsgAccountTrade> {

    /**
     * 入油數據寫交易賬目
     *
     * @param dsgBankDetail
     */
    void writeTradingAccounts(DsgBankDetail dsgBankDetail);


    /**
     * 查詢交易賬目入油過數
     *
     * @param dsgAccountTrade
     * @return
     */
    List<DsgAccountTrade> selectDsgAccountTrade(DsgAccountTrade dsgAccountTrade);

    /**
     * 按銀行往來過數檔案OID查詢交易帳目
     *
     * @param oid
     * @return
     */
    List<DsgAccountTrade> selectDsgAccountTradeListToRecordId(String oid);

    /**
     * 新增交易賬目
     *
     * @param dsgAccountTrade
     */
    void saveDsgAccountTrade(DsgAccountTrade dsgAccountTrade);

    /**
     * 費用調整分頁查詢
     *
     * @param page
     * @param dsgAccountTrade
     * @return
     */
    IPage<DsgAccountTrade> selectListAdj(Page page, DsgAccountTrade dsgAccountTrade);

    /**
     * 結單
     *
     * @param cardClassify
     */
    void statement(String cardClassify);

    /**
     * 查詢結單列表(分頁)
     *
     * @param page
     * @param dsgAccountTrade
     * @return
     */
    IPage<DsgAccountTrade> selectStatementList(Page page, DsgAccountTrade dsgAccountTrade);

    /**
     * 查詢結單數據
     *
     * @param page
     * @param dsgAccountTrade
     * @return
     */
    IPage<DsgAccountTrade> selectStatement(Page page, DsgAccountTrade dsgAccountTrade);
}
